/* Copyright (C) 2007 Notyet

这是algebra库的一部分。

algebra是一个基于C开发的库，旨在解决代数式化简与解简单方程的问题。

联系方式：
E-Mail:nt1900@gmail.com  */

#ifndef _ALG_LETTER_H_
#define _ALG_LETTER_H_	//防止多次定义 

#ifdef ALG_LETTER_VAR_HERE
	#define EXTERN extern
#else
	#define EXTERN
#endif /* ALG_LETTER_VAR_HERE */

#define ALG_LETTER_NAME_LEN	3
#define ALG_LETTER_ID_MAX		10

struct s_letter_table
{
	char name[ALG_LETTER_NAME_LEN+1];				//特别地，我们约定如果该串为"\0",则该项未用
	//...其余的预留给以后扩充
};

EXTERN struct s_letter_table	alg_letter_table[ALG_LETTER_ID_MAX+1];	//注意：这个数组的[0]不应该被使用，以区分成功（非0）与失败（0）
EXTERN unsigned int		letter_table_pointer;				//	因此这个变量的初值应该为1

#ifdef __cplusplus
extern "C" {
#endif
DLLIMPORT extern void		alg_letter_init();
DLLIMPORT extern int		alg_letter_login(char* name);
DLLIMPORT extern int		alg_letter_logout(unsigned int id);
DLLIMPORT extern unsigned int	alg_letter_find(char* name);
DLLIMPORT extern unsigned int	alg_letter_handle(char* name);			//对外的自动接口，返回id，字母不存在则新建。
#ifdef __cplusplus
}
#endif

#endif /* _ALG_LETTER_H_ */
